# Creating Allocations from Scheduled Hours for Resources

This will create allocations for workspace resources based on their scheduled hours.
This endpoint is only usable for Account Administrators and users with `Users can edit allocations for unnamed resources` or `Users can edit allocations for named resources`
access in the `Edit Allocations` section of the `Resource Management` Access Group Set.
This endpoint returns structured Workspace Resource objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array
and will be indexed by ID in the `workspace_resources` top-level JSON key.
Please see our [Response Format](#section/Response-Format) section for more information.

Endpoint: POST /workspace_resources/allocations_matching_scheduled_hours
Version: 1.0.0

## Query parameters:

  - `include` (string)
    Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.
- `custom_field_values` (CustomFieldValue) - Retrieves the custom field values for the resource. The response will include `custom_field_value_ids`, which references the data in the `custom_field_values` top-level key.
- `external_references` (ExternalReference) - Includes references to external integrations for this object.
- `organization_membership` (OrganizationMembership) - Retrieves the organization memberships for the resource. The response will include `organization_membership_id`, which references the data in the `organization_memberships` top-level key.
- `participation` (Participation) - Retrieves the participation associated with the resource. The response will include `participation_id`, which references the data in the `participations` top-level key.
- `role` (Role) - Retrieves the role for this resource. The response will include `role_id`, which references the data in the `roles` top-level key.
- `user` (User) - Retrieves the user associated with the resource. The response will include `user_id`, which references the data in the `users` top-level key. For unnamed resources, the `user_id` will be `null`.
- `workspace` (Workspace) - Retrieves the workspace (project) the resource is in. The response will include `workspace_id`, which references the data in the `workspaces` top-level key.

  - `optional_fields` (array)
    Allows you to request one or more optional fields as an array.

## Request fields (application/json):

  - `data` (array)
    An array of objects representing allocations to create for the specified resources.

  - `data.resource_ids` (array, required)
    An array of IDs of the resources to create allocations for. NOTE: This is only applicable when updating multiple resources via
                        `workspace_resources/allocations_matching_scheduled_hours`.

  - `data.hard` (boolean, required)
    Whether the allocation is a Hard Allocation (“true”) or Soft (“false”). This value must be set to `false` if you are including any unnamed resources in your request.

  - `data.occurrence` (object, required)
    The timeframe of scheduled hours in which to create allocations for.

  - `data.occurrence.type` (string, required)
    The timeframe in which to allocate the scheduled hours. Accepted values are `anytime`, `after`, `before`, and `between`.
    Enum: "anytime", "after", "before", "between"

  - `data.occurrence.after_date` (string)
    Sets the date on and after which the scheduled hours will be distributed as allocations. This value must be provided when the `type` is `after`. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.

  - `data.occurrence.before_date` (string)
    Sets the date on and before which the scheduled hours will be distributed as allocations. This value must be provided when the `type` is `before`. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.

  - `data.occurrence.start_date` (string)
    Sets the start of the date range which the scheduled hours will be distributed as allocations. This value must be provided when the `type` is `between`. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.

  - `data.occurrence.end_date` (string)
    Sets the end of the date range which the scheduled hours will be distributed as allocations. This value must be provided when the `type` is `between`. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.

## Response 200 fields (application/json):

  - `success` (boolean)
    Indicates if workspace allocations were created.

## Response 400 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 401 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 403 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 404 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 422 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 503 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

